import { BASE_URL } from '../../common/config';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputText:'',
    bookList:[],
    historyList:[],//搜索历史
    page:1,
    noMore:false
  },
  getInputing(e){
    // if(this.data.page!=1){
    //   this.setData({
    //     page:1
    //   })
    // }
    // console.log(e.detail.value)
    if(e.detail.value!=''){
      this.setData({
        inputText:e.detail.value,
        bookList:[],
        page:1,
        noMore:false
      })
    this.searchInputText(e.detail.value)
  }else{
    this.setData({
      bookList:[]
    })
  }
  },
  searchInputText(inputText,page){
    wx.request({
      url: `${BASE_URL}/BookList`,
      method:'POST',
      data:{
        page:page !== undefined ? page : 1,
        pageSize:6,
        inputText:inputText
      },
      // header: {
      //   'content-type': 'application/x-www-form-urlencoded'
      // },
      success:(res)=>{
        console.log(res.data.data)
        if(res.data.data==""||res.data.data.length!=6){
          this.setData({
            noMore:true
          })
        }
        let getBookList=res.data.data
        let bookList=this.data.bookList
        // getBookList=getBookList.map((o) => ({
        //   'book_name': o.book_name.replace(inputText, "<span style='color:#0b9de9;'>" + inputText + "</span>"), 
        //   'book_author':  o.book_author.replace(inputText, "<span style='color:#0b9de9;'>" + inputText + "</span>"),
        //   'book_introduce': o.book_introduce
        // }));
        getBookList.forEach((o) => {
          o.book_name = o.book_name.replace(inputText, "<span style='color:#0b9de9;'>" + inputText + "</span>");
          o.book_author = o.book_author.replace(inputText, "<span style='color:#0b9de9;'>" + inputText + "</span>");
        });
        bookList=(bookList || []).concat(getBookList);
        this.setData({
          // bookList:res.data.data
          bookList:bookList
        })
      },
      fail:(err)=>{
        console.log(err)
      }
    })
  },
  getInputAll(e) {
    const newSearchTerm = e.detail.value;
    this.saveSearchHistory(newSearchTerm)
    // 从本地缓存中获取已有的搜索历史
    wx.getStorage({
      key: 'SearchHistory',
      success:(res)=> {
        let history = [];
  
        // 确保从本地缓存中获取到的数据是有效的数组
        try {
          history = JSON.parse(res.data) || []; // 如果解析失败，初始化为空数组
          if (!Array.isArray(history)) {
            history = []; // 如果解析出来的不是数组，则重置为空数组
          }
        } catch (e) {
          console.error("解析历史记录时出错", e);
          history = [];
        }
        // 如果新的搜索项不为空并且不在历史记录中，就添加进去
        if (newSearchTerm && history.indexOf(newSearchTerm) === -1) {
          history.unshift(newSearchTerm); // 将新搜索项添加到数组的开头
        }
        // 限制搜索历史的数量，比如最多保存5条
        if (history.length > 5) {
          history.pop(); // 删除数组最后一项，保持最多保存5条
        }
        // 将更新后的历史记录保存回本地缓存
        wx.setStorage({
          key: 'SearchHistory',
          data: JSON.stringify(history),
        });
        this.setData({
          historyList: history
        });
      },
      fail: ()=> {
        // 如果本地缓存中没有数据，就初始化一个新的数组
        let history = [];
        if (newSearchTerm) {
          history.push(newSearchTerm); // 添加新的搜索项
        }
        wx.setStorage({
          key: 'SearchHistory',
          data: JSON.stringify(history),
        });
        this.setData({
          historyList: history
        });
        
      }
    });
  },
  saveSearchHistory(searchText){
    let openid=wx.getStorageSync('openid')
    wx.request({
      url: `${BASE_URL}/saveSearchHistory`,
      method:'POST',
      data:{
        bookName:searchText,
        openId:openid
      },
      success:(res)=>{
        // console.log(res)
      },
      fail:(err)=>{}
    })
  },
  // searchBookList(){
  //   console.log(this.data.inputText)
  // },
  setHistoryInput(e){
    let text=e.currentTarget.dataset.text
    this.saveSearchHistory(text)
    // console.log(text)
    this.setData({
      inputText:text
    })
    this.searchInputText(text)
  },
  clearHistory(){
    wx.showModal({
      title: '是否确认清空搜索历史',
      content: '',
      success: (res) => {
        if (res.cancel) {
          // console.log('取消')
        }
    
        if (res.confirm) {
          // console.log('确认')
          wx.removeStorage({
            key: 'SearchHistory',
          })
          this.setData({
            historyList: []
          });
        }
      }
    })
  },
  jumpBookDetail(e){
    let bookid = e.currentTarget.dataset.bookid.replace(/<[^>]*>/g, "");
    // console.log(bookid)
    wx.navigateTo({
      url: '/pages/bookDetail/bookDetail?bookid='+bookid,
    })
  },
    /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.getStorage({
      key: 'SearchHistory',
      success: (res) => {  // 使用箭头函数
        let history = [];
        history = JSON.parse(res.data) || [];
        console.log('页面刷新拿到的搜索历史', history);
        this.setData({
          historyList: history
        });
      }
    });
  },  

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // console.log("触发触底事件")
    if(!this.data.noMore){
    this.setData({
      page:this.data.page+1
    })
    // console.log(this.data.page)
    this.searchInputText(this.data.inputText,this.data.page)
  }else{
    console.log("没有更多数据了")
  }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})